package com.nova.bluetooth.helpUtils;

import android.content.Context;
import android.graphics.Color;
import android.widget.Toast;

import androidx.annotation.StringRes;


public class ToastUtils {
    private ToastUtils() {
        throw new UnsupportedOperationException("u can't instantiate me...");
    }

    private static Context context;
    // Toast对象
    private static Toast toast;
    // 文字显示的颜色 <color name="white">#FFFFFFFF</color>
    private static int messageColor = Color.WHITE;

    /**
     * 在Application中初始化ToastUtils.init(this)
     *
     * @param context
     */
    public static void init(Context context) {
        ToastUtils.context = context.getApplicationContext();
    }

    /**
     * 发送Toast,默认LENGTH_SHORT
     *
     * @param resId
     */
    public static void show(int resId) {
        showToast(context, context.getString(resId), Toast.LENGTH_SHORT);
    }

    /**
     * 在activity中使用，需要用activity上下文获取，否则华为手机在切换语言环境下会使用默认资源
     * @param context
     * @param resId
     */
    public static void show(Context context, @StringRes int resId) {
        showToast(context, context.getString(resId), Toast.LENGTH_SHORT);
    }

    /**
     * 在activity中使用，需要用activity上下文获取，否则华为手机在切换语言环境下会使用默认资源
     * @param context
     * @param resId
     */
    public static void show(Context context, String resId) {
        showToast(context, resId, Toast.LENGTH_SHORT);
    }


    /**
     * 发送Toast,默认LENGTH_SHORT
     */
    public static void show(String str) {
        showToast(context, str, Toast.LENGTH_SHORT);
    }

    /**
     * 发送Toast,默认LENGTH_SHORT
     */
    public static void showLong(String str) {
        showToast(context, str, Toast.LENGTH_LONG);
    }

    private static void showToast(Context context, String massage, int duration) {
        // 设置显示文字的颜色
        if (toast == null) {
            toast = Toast.makeText(context, massage, duration);
        } else {
            toast.setText(massage);
            toast.setDuration(duration);
        }
        toast.show();
    }

    /**
     * 在UI界面隐藏或者销毁前取消Toast显示
     */
    public static void cancel() {
        if (toast != null) {
            toast.cancel();
            toast = null;
        }
    }




}
